package com.taichuan.selfcheck.db;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

import com.github.yuweiguocn.library.greendao.MigrationHelper;
import com.taichuan.selfcheck.entity.greendao.dao.DaoMaster;
import com.taichuan.selfcheck.entity.greendao.dao.TestResultEntityDao;

import org.greenrobot.greendao.database.Database;

/**
 * 该类主要用于 实现greenDao 数据库的自动升级
 *
 * @author CamelLuo
 * @version 2019/11/29
 */
public class GreenDaoUpgradeHelper extends DaoMaster.OpenHelper {
    private static final String TAG = GreenDaoUpgradeHelper.class.getSimpleName();

    public GreenDaoUpgradeHelper(Context context, String name, SQLiteDatabase.CursorFactory factory) {
        super(context, name, factory);
        Log.e(TAG, "GreenDaoUpgradeHelper: 实例化greenDao数据库升级帮助类：  " + name);
    }

    @Override
    public void onUpgrade(Database db, int oldVersion, int newVersion) {
        Log.e(TAG, "onUpgrade: greenDao数据库升级帮助类正在执行数据库升级： 旧版本号为： " + oldVersion + "  新版本号为：  " + newVersion);
        //
        MigrationHelper.migrate(db, new MigrationHelper.ReCreateAllTableListener() {

                    @Override
                    public void onCreateAllTables(Database db, boolean ifNotExists) {
                        DaoMaster.createAllTables(db, ifNotExists);
                    }

                    @Override
                    public void onDropAllTables(Database db, boolean ifExists) {
                        DaoMaster.dropAllTables(db, ifExists);
                    }
                }
                /**
                 * 【数据库使用重要提示】如果项目需要新建数据表，请将该数据表的Dao类添加至该列表中，否则程序将无法被覆盖升级至旧版本的程序上
                 */
                ,
                TestResultEntityDao.class
        );
    }
}
